/* * Author: Chris Seguin * * This software has been developed under the copyleft * rules of the GNU General Public License. Please * consult the GNU General Public License for more * details about use and distribution of this software. */ package org.acm.seguin.parser.ast; import org.acm.seguin.parser.JavaParser; import org.acm.seguin.parser.JavaParserVisitor; import org.acm.seguin.pretty.ForceJavadocComments; import org.acm.seguin.pretty.JavaDocComponent; import org.acm.seguin.pretty.JavaDocable; import org.acm.seguin.pretty.JavaDocableImpl; import org.acm.seguin.pretty.ModifierHolder; import org.acm.seguin.pretty.PrintData; import org.acm.seguin.pretty.ai.RequiredTags; import org.acm.seguin.util.FileSettings; /** * Holds an interface declaration. Essentially this is the method declaration * inside an interface. * *@author Chris Seguin *@created October 13, 1999 */ public class ASTInterfaceDeclaration extends SimpleNode implements JavaDocable { // Instance Variables private JavaDocableImpl jdi; private ModifierHolder modifiers; /** * Constructor for the ASTInterfaceDeclaration object * *@param id Description of Parameter */ public ASTInterfaceDeclaration(int id) { super(id); modifiers = new ModifierHolder(); jdi = new JavaDocableImpl(); } /** * Constructor for the ASTInterfaceDeclaration object * *@param p Description of Parameter *@param id Description of Parameter */ public ASTInterfaceDeclaration(JavaParser p, int id) { super(p, id); modifiers = new ModifierHolder(); jdi = new JavaDocableImpl(); } /** * Determine if the object is abstract * *@return true if this stores an ABSTRACT flag */ public boolean isAbstract() { return modifiers.isAbstract(); } /** * Determine if the object is explicit * *@return true if this stores an EXPLICIT flag */ public boolean isExplicit() { return modifiers.isExplicit(); } /** * Determine if the object is final * *@return true if this stores an FINAL flag */ public boolean isFinal() { return modifiers.isFinal(); } /** * Determine if the object is interface * *@return true if this stores an INTERFACE flag */ public boolean isInterface() { return modifiers.isInterface(); } /** * Determine if the object is native * *@return true if this stores an NATIVE flag */ public boolean isNative() { return modifiers.isNative(); } /** * Determine if the object is private * *@return true if this stores an PRIVATE flag */ public boolean isPrivate() { return modifiers.isPrivate(); } /** * Determine if the object is protected * *@return true if this stores an PROTECTED flag */ public boolean isProtected() { return modifiers.isProtected(); } /** * Determine if the object is public * *@return true if this stores an PUBLIC flag */ public boolean isPublic() { return modifiers.isPublic(); } /** * Determine if the object is static * *@return true if this stores an static flag */ public boolean isStatic() { return modifiers.isStatic(); } /** * Determine if the object is strict * *@return true if this stores an STRICT flag */ public boolean isStrict() { return modifiers.isStrict(); } /** * Determine if the object is synchronized * *@return true if this stores an SYNCHRONIZED flag */ public boolean isSynchronized() { return modifiers.isSynchronized(); } /** * Determine if the object is transient * *@return true if this stores an TRANSIENT flag */ public boolean isTransient() { return modifiers.isTransient(); } /** * Determine if the object is volatile * *@return true if this stores an VOLATILE flag */ public boolean isVolatile() { return modifiers.isVolatile(); } /** * Returns a string containing all the modifiers * *@return the iterator */ public String getModifiersString() { return modifiers.toString(); } /** * Returns the modifier holder * *@return the holder */ public ModifierHolder getModifiers() { return modifiers; } /** * Checks to see if it was printed * *@return true if it still needs to be printed */ public boolean isRequired() { ForceJavadocComments fjc = new ForceJavadocComments(); return jdi.isRequired() && fjc.isJavaDocRequired("class", modifiers); } /** * Adds a modifier to a class * *@param modifier the next modifier */ public void addModifier(String modifier) { modifiers.add(modifier); } /** * Convert this object to a string * *@return a string representing this object */ public String toString() { return super.toString() + " [" + getModifiersString() + "]"; } /** * Allows you to add a java doc component * *@param component the component that can be added */ public void addJavaDocComponent(JavaDocComponent component) { jdi.addJavaDocComponent(component); } /** * Prints all the java doc components * *@param printData the print data */ public void printJavaDocComponents(PrintData printData) { FileSettings bundle = FileSettings.getSettings("Refactory", "pretty"); jdi.printJavaDocComponents(printData, bundle.getString("class.tags")); } /** * Makes sure all the java doc components are present. For classes and * interfaces, this means a date and an author. */ public void finish() { // Get the resource bundle FileSettings bundle = FileSettings.getSettings("Refactory", "pretty"); // Description of the interface jdi.require("", bundle.getString("interface.descr")); // Require the other tags ASTUnmodifiedInterfaceDeclaration child = (ASTUnmodifiedInterfaceDeclaration) jjtGetChild(0); RequiredTags.getTagger().addTags(bundle, "class", child.getName(), jdi); } /** * Accept the visitor. * *@param visitor Description of Parameter *@param data Description of Parameter *@return Description of the Returned Value */ public Object jjtAccept(JavaParserVisitor visitor, Object data) { return visitor.visit(this, data); } }